﻿using furion.blog.Domain.Query.TagConfig;
using furion.blog.Domain.Shared;
using furion.blog.Domain.Shared.Dto.TagConfig;
using furion.blog.Domain.Shared.Vo.TagConfig;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace furion.blog.Application.Contracts
{
    public interface ITagConfigService
    {
        /// <summary>
        /// 标签分页
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<PageVO> List(TagConfigListQuery query);

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        Task Delete(long id,long userId);

        /// <summary>
        /// 修改状态
        /// </summary>
        /// <param name="id"></param>
        /// <param name="status"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        Task ChangeStatus(long id,string status,long userId);

        /// <summary>
        /// 详细信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<TagConfigDetailVO> Detail(long id);

        /// <summary>
        /// 根据group 查询所有
        /// </summary>
        /// <param name="group"></param>
        /// <returns></returns>
        Task<List<TagConfigDetailVO>> All(string group);

        /// <summary>
        /// 添加标签
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task Add(TagConfigCreateDto dto);

        /// <summary>
        /// 更新标签
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task Update(TagConfigUpdateDto dto);
    }
}
